package com.x.uikit.channel.feed;

import android.content.Context;
import android.widget.FrameLayout;

import androidx.annotation.NonNull;

public class CardContentTab extends FrameLayout {
    public CardContentTab(@NonNull Context context) {
        super(context);
    }
//        implements XLink.CommandHandler {

//    /**
//     * 加载状态
//     */
//    public enum State {
//        EMPTY, LOADING, SUCCESS, FAIL
//    }
//
//    /**
//     * 加载的方法
//     */
//    public enum LoadMethod {
//        PAGE, REFRESH, LOAD_MORE
//    }
//
//    RecyclerView mRecyclerView;
//    CardAdapter mAdapter;
//    ContentTabParams mParams;
//    State mState = State.EMPTY;
//    LoadMethod mLoadMethod = LoadMethod.PAGE;
//    String mLoadFailTips;
//    EventParams mLoadParams;
//
//    public CardContentTab(@NonNull Context context, ContentTabParams params) {
//        super(context);
//        mParams = params;
//        initView();
//    }
//
//    private void initView() {
//        initRecyclerView();
//        View contentView = mRecyclerView;
//        LoadListenerImp loadListener = createLoadListener();
//        if (mParams.refreshView != null) {
//            mParams.refreshView.attachContentView(mRecyclerView);
//            mParams.refreshView.setRefreshListener(loadListener);
//            contentView = mParams.refreshView.getView();
//        }
//        if (mParams.loadMoreView != null) {
//            mAdapter.setLoadMoreView(mParams.loadMoreView);
//            mParams.loadMoreView.setOnLoadMoreListener(loadListener);
//        }
//        createAdapter();
//        mRecyclerView.setAdapter(mAdapter);
//        this.addView(contentView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
//        this.addView(mParams.pageStateView.getView(), ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
//    }
//
//    protected void createAdapter() {
//        mAdapter = new XFeedAdaptera();
//    }
//
//    protected LoadListenerImp createLoadListener() {
//        return new LoadListenerImp();
//    }
//
//    protected void initRecyclerView() {
//        mRecyclerView = new RecyclerView(getContext());
//        mRecyclerView.setHasFixedSize(true);
//        LinearLayoutManager manager = new LinearLayoutManager(getContext(), RecyclerView.VERTICAL, false);
//        mRecyclerView.setLayoutManager(manager);
//    }
//
//    public void setCardFactory(ICardFactory1 factory) {
//        mAdapter.setCardFactory(factory);
//    }
//
//    public void setDataSource(IDataSource dataSource) {
//        mAdapter.setDataSource(dataSource);
//    }
//
//    public void notifyDataSetChanged() {
//        mAdapter.notifyDataSetChanged();
//    }
//
//
//    public void resetToInit() {
//        mLoadMethod = LoadMethod.PAGE;
//        changeToEmptyState();
//        mLoadMethod = LoadMethod.REFRESH;
//        changeToEmptyState();
//        mLoadMethod = LoadMethod.LOAD_MORE;
//        changeToEmptyState();
//        switchState(State.EMPTY);
//    }
//
//    public void resetToHasData() {
//        switchState(State.SUCCESS);
//        notifyDataSetChange();
//    }
//
//
//    protected void switchState(State state) {
//        if (mState.equals(state)) {
//            return;
//        }
//        mState = state;
//        switch (state) {
//            case EMPTY:
//                changeToEmptyState();
//                break;
//            case LOADING:
//                changeToLoadingState();
//                break;
//            case SUCCESS:
//                changeToSuccessState();
//                break;
//            case FAIL:
//                changeToFailState();
//                break;
//        }
//    }
//
//    protected void changeToFailState() {
//        IStateView stateView = null;
//        switch (mLoadMethod) {
//            case PAGE:
//                stateView = mParams.pageStateView;
//                break;
//            case REFRESH:
//                stateView = mParams.refreshView;
//                break;
//            case LOAD_MORE:
//                stateView = mParams.loadMoreView;
//                break;
//        }
//        if (stateView != null) {
//            stateView.showErrorView(mLoadFailTips);
//        }
//    }
//
//    protected void changeToSuccessState() {
//        IStateView stateView = null;
//        switch (mLoadMethod) {
//            case PAGE:
//                stateView = mParams.pageStateView;
//                break;
//            case REFRESH:
//                stateView = mParams.refreshView;
//                break;
//            case LOAD_MORE:
//                stateView = mParams.loadMoreView;
//                break;
//        }
//        if (stateView != null) {
//            stateView.showContentView();
//        }
//        mAdapter.notifyDataSetChanged();
//    }
//
//    protected void changeToLoadingState() {
//        IStateView stateView = null;
//        switch (mLoadMethod) {
//            case PAGE:
//                stateView = mParams.pageStateView;
//                break;
//            case REFRESH:
//                stateView = mParams.refreshView;
//                break;
//            case LOAD_MORE:
//                stateView = mParams.loadMoreView;
//                break;
//        }
//        if (stateView != null) {
//            stateView.showLoadingView();
//        }
//    }
//
//    protected void changeToEmptyState() {
//        IStateView stateView = null;
//        switch (mLoadMethod) {
//            case PAGE:
//                stateView = mParams.pageStateView;
//                break;
//            case REFRESH:
//                stateView = mParams.refreshView;
//                break;
//            case LOAD_MORE:
//                stateView = mParams.loadMoreView;
//                break;
//        }
//        if (stateView != null) {
//            stateView.showEmptyView();
//        }
//    }
//
//    protected void load(LoadMethod method) {
//        mLoadMethod = method;
//        if (mParams.loadListener == null) {
//            return;
//        }
//        switch (method) {
//            case PAGE:
//                mParams.loadListener.onPageLoad(getAndClearLoadParams());
//                break;
//            case REFRESH:
//                mParams.loadListener.onRefresh(getAndClearLoadParams());
//                break;
//            case LOAD_MORE:
//                mParams.loadListener.onLoadMore(getAndClearLoadParams());
//                break;
//        }
//        switchState(State.LOADING);
//    }
//
//    public boolean hasData() {
//        return mAdapter.getDataSource() != null && mAdapter.getDataSource().getCount() > 0;
//    }
//
//
//    public void startLoad(LoadMethod method) {
//        startLoad(method, null);
//    }
//
//    public void startLoad(LoadMethod method, EventParams params) {
//        mLoadParams = params;
//        switch (method) {
//            case PAGE:
//            case LOAD_MORE:
//                load(method);
//                break;
//            case REFRESH:
//                if (mParams.refreshView != null) {
//                    mParams.refreshView.autoRefresh();
//                }
//                break;
//        }
//    }
//
//    /**
//     * 建议使用这个方法获取mLoadParams，防止忘记reset mLoadParams
//     *
//     * @return
//     */
//    protected EventParams getAndClearLoadParams() {
//        EventParams result = mLoadParams;
//        mLoadParams = null;
//        return result;
//    }
//
//
//    public void finishLoad(boolean success, boolean finishLoad) {
//        if (mParams.loadMoreView != null) {
//            mParams.loadMoreView.setFinishLoad(finishLoad);
//        }
//        State state;
//        if (success) {
//            if (hasData()) {
//                state = State.SUCCESS;
//            } else {
//                state = State.EMPTY;
//            }
//        } else {
//            state = State.FAIL;
//        }
//        switchState(state);
//    }
//
//    public void setLoadFailTips(String tips) {
//        this.mLoadFailTips = tips;
//    }
//
//
//    public void scrollToTop(boolean smooth) {
//        if (smooth) {
//            mRecyclerView.smoothScrollToPosition(0);
//        } else {
//            mRecyclerView.scrollToPosition(0);
//        }
//    }
//
//    public void notifyDataSetChange() {
//        if (mAdapter != null) {
//            mAdapter.notifyDataSetChanged();
//        }
//    }
//
//    @Override
//    public boolean handleCommand(int id, EventParams params, EventParams result) {
//        return mAdapter.handleCommand(id, params, result);
//    }
//
//    @Override
//    public boolean handCommand(int commandId, XLink.Params params, XLink.Params result) {
//        return mAdapter.handCommand(commandId,params,result);
//    }
//
//    protected class LoadListenerImp implements IRefreshView.OnRefreshListener, ILoadMoreView.OnLoadMoreListener {
//        @Override
//        public void onLoadMore() {
//            load(LoadMethod.LOAD_MORE);
//        }
//
//        @Override
//        public void onRefresh() {
//            load(LoadMethod.REFRESH);
//        }
//    }


}
